package cn.lxw.objectboxsimple.app

import android.app.Application
import cn.lxw.objectboxsimple.BuildConfig
import cn.lxw.objectboxsimple.bean.MyObjectBox
import io.objectbox.BoxStore
import io.objectbox.android.AndroidObjectBrowser

class App : Application() {

    private var mBoxStore: BoxStore? = null
    override fun onCreate() {
        super.onCreate()
        instance = this
        initDataBase()
    }

    /**
     * 初始化ObjectBox
     */
    private fun initDataBase() {
        mBoxStore = MyObjectBox.builder().androidContext(this).build()
        if (BuildConfig.DEBUG) {
            AndroidObjectBrowser(mBoxStore).start(this)
        }
    }

    /**
     * 对外提供获取ObjectBox的方法
     */
    fun getBoxStore(): BoxStore {
        return mBoxStore!!
    }

    /**
     * 方便直接使用Application来调用获取到ObjectBox的实例
     */
    companion object {
        lateinit var instance: App
            private set
    }
}